-- 1、参数列表
-- 1.1、接口id
local interfaceId = ARGV[1]
local need = ARGV[2]
local orderNum = ARGV[3]

-- 2、数据key
-- 2.1、库存key
local stockKey = 'interface:stock:' .. interfaceId

-- 3、脚本业务
-- 3.1、判断库存是否充足 get stockKey
if (tonumber(redis.call('get', stockKey)) < tonumber(need)) then
    -- 3.2、库存不足，返回1
    return 1
end
-- 3.2、扣库存 incrby stockKey -1
redis.call('incrby', stockKey, -need)
local userPurchaseKey = 'user:purchase:' .. orderNum
-- 3.3、下单（保存用户） SET orderNum订单号 need下单数量
redis.call('set', userPurchaseKey, need)
return 0